package com.nbcio.cd.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nbcio.cd.domain.CdUserStorage;
import org.apache.ibatis.annotations.Param;

/**
 * 云网盘用户存储统计Mapper接口
 *
 * @author nbacheng
 */
public interface CdUserStorageMapper extends BaseMapper<CdUserStorage> {

    /**
     * 根据用户ID查询存储统计
     *
     * @param userId 用户ID
     * @return 存储统计信息
     */
    CdUserStorage selectStorageByUserId(@Param("userId") Long userId);

    /**
     * 更新用户存储统计
     *
     * @param userId 用户ID
     * @param usedSize 已使用大小
     * @param fileCount 文件数量
     * @param folderCount 文件夹数量
     * @return 更新结果
     */
    int updateUserStorage(@Param("userId") Long userId, 
                         @Param("usedSize") Long usedSize,
                         @Param("fileCount") Integer fileCount,
                         @Param("folderCount") Integer folderCount);

    /**
     * 增加用户存储使用量
     *
     * @param userId 用户ID
     * @param size 增加的大小
     * @return 更新结果
     */
    int increaseUserStorage(@Param("userId") Long userId, @Param("size") Long size);

    /**
     * 减少用户存储使用量
     *
     * @param userId 用户ID
     * @param size 减少的大小
     * @return 更新结果
     */
    int decreaseUserStorage(@Param("userId") Long userId, @Param("size") Long size);
}
